/**
* Copyright (c) By zengqh.
*
* This program is just for fun or demo, in the hope that it  
* will be useful, you can redistribute it and/or modify freely.
*
* Time: 2012/07/11
* File: LightData.h
* Blog: http://www.cnblogs.com/zengqh/
**/

#ifndef LightData_h__
#define LightData_h__

#include "../Core/Core.h"
#include "../Core/Declare.h"

class LightData
{
public:
	typedef glm::vec4 ColorType;

	LightData()
		: _ambient_color(0.0f, 0.0f, 0.0f, 1.0f)
		, _diffuse_color(0.0f, 0.0f, 0.0f, 1.0f)
		, _specular_color(0.0f, 0.0f, 0.0f, 1.0f)
		, _attenuation(0.0f, 0.0f, 0.0f)
		, _outer_cone(0.0f)
		, _inner_cone(0.0f)
		, _fall_off(0.1f)
		, _position(0.0f, 0.0f, 0.0f)
		, _direction(0.0f, 0.0f, 0.0f) 
		, _radius(0.0f)
		, _type(LT_DIRECTIONAL)
		, _enable(false)
		, _index(-1)
	{

	}

	~LightData() {}

	bool				_enable;
	s32					_index;
	ColorType			_ambient_color;
	ColorType			_diffuse_color;
	ColorType			_specular_color;
	glm::vec3			_attenuation;
	f32					_outer_cone;
	f32					_inner_cone;
	f32					_fall_off;
	glm::vec3			_position;
	glm::vec3			_direction;
	f32					_radius;
	LightType			_type;
};

#endif    /* LightData_h__ */